package com.black.apartment.domain;

import java.util.List;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.black.common.annotation.Excel;
import com.black.common.core.domain.BaseEntity;

/**
 * 公寓管理对象 tb_apartments
 * 
 * @author kuan
 * @date 2024-10-08
 */
public class Apartments extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 公寓id */
    private Long id;

    /** 公寓名称 */
    @Excel(name = "公寓名称")
    private String name;

    /** 省份 */
    @Excel(name = "省份")
    private String province;

    /** 城市 */
    @Excel(name = "城市")
    private String city;

    /** 地址 */
    @Excel(name = "地址")
    private String address;

    /** 房东id */
    private Long landlordId;

    /** 房间总数 */
    @Excel(name = "房间总数")
    private Long totalRooms;

    /** 剩余房间 */
    @Excel(name = "剩余房间")
    private Long availableRooms;

    /** 图片 */
    @Excel(name = "图片")
    private String imagePath;

    /** 创建时间 */
    private Date createdAt;

    /** 修改时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "修改时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date updatedAt;

    /** 公寓备注 */
    @Excel(name = "公寓备注")
    private String description;

    /** 公寓属性信息信息 */
    private List<ApartmentAttributes> apartmentAttributesList;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setName(String name) 
    {
        this.name = name;
    }

    public String getName() 
    {
        return name;
    }
    public void setProvince(String province) 
    {
        this.province = province;
    }

    public String getProvince() 
    {
        return province;
    }
    public void setCity(String city) 
    {
        this.city = city;
    }

    public String getCity() 
    {
        return city;
    }
    public void setAddress(String address) 
    {
        this.address = address;
    }

    public String getAddress() 
    {
        return address;
    }
    public void setLandlordId(Long landlordId) 
    {
        this.landlordId = landlordId;
    }

    public Long getLandlordId() 
    {
        return landlordId;
    }
    public void setTotalRooms(Long totalRooms) 
    {
        this.totalRooms = totalRooms;
    }

    public Long getTotalRooms() 
    {
        return totalRooms;
    }
    public void setAvailableRooms(Long availableRooms) 
    {
        this.availableRooms = availableRooms;
    }

    public Long getAvailableRooms() 
    {
        return availableRooms;
    }
    public void setImagePath(String imagePath) 
    {
        this.imagePath = imagePath;
    }

    public String getImagePath() 
    {
        return imagePath;
    }
    public void setCreatedAt(Date createdAt) 
    {
        this.createdAt = createdAt;
    }

    public Date getCreatedAt() 
    {
        return createdAt;
    }
    public void setUpdatedAt(Date updatedAt)
    {
        this.updatedAt = updatedAt;
    }

    public Date getUpdatedAt()
    {
        return updatedAt;
    }
    public void setDescription(String description) 
    {
        this.description = description;
    }

    public String getDescription() 
    {
        return description;
    }

    public List<ApartmentAttributes> getApartmentAttributesList()
    {
        return apartmentAttributesList;
    }

    public void setApartmentAttributesList(List<ApartmentAttributes> apartmentAttributesList)
    {
        this.apartmentAttributesList = apartmentAttributesList;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("name", getName())
            .append("province", getProvince())
            .append("city", getCity())
            .append("address", getAddress())
            .append("landlordId", getLandlordId())
            .append("totalRooms", getTotalRooms())
            .append("availableRooms", getAvailableRooms())
            .append("imagePath", getImagePath())
            .append("createdAt", getCreatedAt())
            .append("updatedAt", getUpdatedAt())
            .append("description", getDescription())
            .append("apartmentAttributesList", getApartmentAttributesList())
            .toString();
    }
}
